Consistency recovery method for seamless database duplication

ABSTRACT

According to an embodiment of the present disclosure, there may be provided a computer program stored in a computer readable storage medium, which includes encoded commands, wherein executing the computer program by one or more processors of a computer system allows the one or more processor to perform steps for change data capture (CDC) between a source database and a target database, in which the steps include: a replication step of permitting a real-time synchronization process for objects to be performed by a real-time CDC module; a recovery start step of encapsulating, when at least one non-integrity object is present between the source database and the target database, the at least one non-integrity object in a recovery target object; a non-stop replication step of permitting a real-time synchronization process to be performed with respect to objects other than the recovery target object among the objects by the real-time CDC module; and a recovery step of permitting the recovery target object to be recovered by a recovery module and a recovery CDC module, the recovery step being performed in parallel with the non-stop replication step.

TECHNICAL FIELD

The present disclosure relates to a database, and more particularly, to an efficient change data capture (CDC) technique.

BACKGROUND ART

Businesses of enterprises are rapidly expanding with explosive data growth and the emergence of diverse environments and platforms. As new business environments emerge, more efficient and flexible data services and information processing, and data management functions are needed. In response to these changes, a research is continued on databases to solve problems of high performance, high availability, and scalability which are foundations of corporate business implementation.

Data managed within an enterprise often needs to be migrated or replicated from a source location to a target location to be managed. For example, a database system for implementing banking business can be categorized into a database that can be accessed by a plurality of external customers at the same time and a database that can be accessed by internal employees, depending on the characteristics of clients accessing the database system. In using the two databases in one database system, synchronization between both databases needs to be made in order to maintain data integrity. However, implementing such synchronization may result in overhead for database resources.

In recent years, with a growing demand for real-time data analysis by corporates, when data has been changed in a specific DB, a necessity for a technique that captures the changed data and transfers the captured data to another DB has been emerged. A data warehouse (DW), which is a corporate analysis DB, is general to update data generated during business hours until the day before by batching at night time after work. For this reason, the existing DW structure is forced to analyze data up to yesterday. For example, when a bank reviews customers' loans, the bank has considered and evaluated the data up to yesterday. For this reason, customer information changed today cannot but be overlooked by the loan review.

As a means for implementing the synchronization between the databases in real time, change data capture (CDC) technology is attracting attention. The CDC technology is a data replication solution that captures change data from a data source and transmits the captured change data to a target system. Such a CDC can be used to monitor and track the transactions in the database systems, and in particular, can be used to monitor and track changes of data that are committed in the database system. Change data capture technology can capture data change contents in the source database and transfer the captured data change contents to the target system to permit data replication of the source and target databases.

Such CDC technology can extract data of the entire table with only a few sessions. In addition, since the CDC technology does not directly access a data file, the CDC technology has an advantage of reducing resource utilization in a database management system (DBMS).

The CDC technology is used even in various other fields. The CDC technology is utilized in order to prevent a service from being stopped at the time of migrating a system. Since a mission critical system should not be out of service for a while, the mission critical system is not easy to upgrade rashly. However, when the CDC is used in such a situation, old equipment can be shut down while synchronizing the database, so that it is possible to prevent a downtime. Moreover, the CDC technology can also be usefully used when duplexing the system for ensuring high availability.

However, such CDC technology can cause a delay in synchronizing data to a runtime in the case of generation of large amounts of data. Further, the CDC technology has a disadvantage in that, when a change in table structure or the like is accompanied, a problem related to the integrity of data synchronization may occur.

Accordingly, there is a need for the CDC technology that can reduce the delay for the data synchronization between the source database and the target database and that does not cause the problem with the data synchronization even when the change to the table structure occurs

DISCLOSURE Technical Problem

The present disclosed contents have been made in an effort to provide technical features for recovering integrity without dropping data synchronization between a source database and a target database.

Technical Solution

According to an embodiment of the present disclosure, there may be provided a computer program stored in a computer readable storage medium, which includes encoded commands, wherein executing the computer program by one or more processors of a computer system allows the one or more processor to perform steps for change data capture (CDC) between a source database and a target database, in which the steps include: a replication step of permitting a real-time synchronization process for objects to be performed by a real-time CDC module; a recovery start step of encapsulating, when at least one non-integrity object is present between the source database and the target database, the at least one non-integrity object in a recovery target object; a non-stop replication step of permitting a real-time synchronization process to be performed with respect to objects other than the recovery target object among the objects by the real-time CDC module; and a recovery step of permitting the recovery target object to be recovered by a recovery module and a recovery CDC module, the recovery step being performed in parallel with the non-stop replication step.

Advantageous Effects

The present disclosed contents may provide a technique for recovering integrity without dropping data synchronization between a source database and a target database.

DESCRIPTION OF DRAWINGS

Various aspects are now described with reference to the drawings and like reference numerals are generally used to designate like elements. In the following embodiments, for the purpose of description, multiple specific detailed matters are presented to provide general understanding of one or more aspects. However, it will be apparent that the aspect(s) can be executed without the specific detailed matters. In other examples, known structures and apparatuses are illustrated in a block diagram form in order to facilitate description of the one or more aspects.

FIG. 1 is a diagram for describing an exemplary database system according to an embodiment of the present disclosure.

FIG. 2 is a diagram for describing an agent server that may perform a database replication non-stop integrity recovery method according to an embodiment of the present disclosure.

FIG. 3 is a diagram for describing steps of a database replication non-stop integrity recovery method according to an embodiment of the present disclosure.

FIG. 4 is a diagram for describing a replication step and a recovery start step according to an embodiment of the present disclosure.

FIG. 5 is a diagram for describing a non-stop replication step, a recovery step, and a recovery end step according to an embodiment of the present disclosure.

FIG. 6 is a block diagram of an exemplary computing device for implementing a CDC solution according to an embodiment of the present disclosure.

BEST MODE

Various embodiments and/or aspects will be now disclosed with reference to drawings. In the following description, for the purpose of a description, multiple detailed matters will be disclosed in order to help comprehensive appreciation of one or more aspects. However, those skilled in the art will recognize that the aspect(s) can be executed without the detailed matters. In the following disclosure and the accompanying drawings, specific exemplary aspects of one or more aspects will be described in detail. However, the aspects are exemplary and some of various methods in principles of various aspects may be used and the descriptions are intended to include all of the aspects and equivalents thereof.

Further various aspects and features will be presented by a system which can include multiple devices, components, and/or modules. It should also be appreciated and recognized that various systems can include additional apparatuses, components, and/or modules and/or that the various systems cannot include all of apparatuses, components, modules, and the like discussed in association with the drawings.

In “embodiment”, “example”, “aspect”, “illustration”, and the like used in the specification, it may not be construed that a predetermined aspect or design which is described is more excellent or advantageous than other aspects or designs. ‘Component’, ‘module’, ‘system’, ‘interface’, and the like which are terms used below generally mean computer-related entities and mean, for example, hardware, a combination of the hardware and software, and the software.

Moreover, the term “or” is intended to mean not exclusive “or” but inclusive “or”. That is, when not separately specified or not clear in terms of a context, a sentence “X uses A or B” is intended to mean one of the natural inclusive substitutions. That is, the sentence “X uses A or B” may be applied to all of the case where X uses A, the case where X uses B, or the case where X uses both A and B. Further, it should be understood that the term “and/or” used in this specification designates and includes all available combinations of one or more items among enumerated related items.

In addition, the word “comprises” and/or “comprising” means that the corresponding feature and/or component is present, but it should be appreciated that presence or addition of one or more other features, components, and/or a group thereof is not excluded. Further, when not separately specified or not clear in terms of the context that a singular form is indicated, it should be construed that the singular form generally means “one or more” in the present specification and the claims.

The computer-readable storage medium in the present specification may include all kinds of storage media storing programs and data so as to be readable by the computer system. According to an aspect of the present disclosure, the media may include a read only memory (ROM), a random access memory (RAM), a compact disk (CD)-ROM, a digital video disk (DVD)-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like. Additionally, the media are distributed to systems connected through network to store computer readable codes and/or commands in a distribution scheme.

Prior to describing detailed contents for carrying out the present disclosure, it should be noted that configurations not directly associated with the technical gist of the present disclosure are omitted without departing from the technical gist of the present disclosure. Further, terms or words used in the present specification and claims should be interpreted as meanings and concepts which match the technical spirit of the present disclosure based on a principle in which the inventor can define appropriate concepts of the terms in order to describe his/her invention by a best method.

A log record in this specification may be used interchangeably with a transaction log.

FIG. 1 is a diagram for describing an exemplary database system according to an embodiment of the present disclosure.

As illustrated in FIG. 1, the database system 100 may include a source database 110, a target database, and/or an agent server 130.

Although not illustrated in FIG. 1, the database system 100 may include a client and the client may mean a node(s) in a system having a mechanism for communication with databases. For example, the client may include a personal computer (PC), a laptop computer, a workstation, a terminal, and/or a predetermined electronic device having network connectivity. Further, the client may include a predetermined server implemented by at least one of an agent, an application programming interface (API), and plug-in.

The databases 110 and 120 may include a predetermined type of computer system or computer device such as a microprocessor, a mainframe computer, a digital single processor, a portable device, and a device controller. Each of the databases 110 and 120 may include a database management system (DBMS) and/or a persistent storage although not illustrated.

Although not illustrated in FIG. 1, the databases 110 and 120 may include one or more memories including a buffer cache. Further, although not illustrated in FIG. 1, the databases 110 and 120 may include one or more processors. Therefore, the DBMS in the database may be operated by the processor on the memory.

Here, the memory as a primary storage device directly accessed by the processor, such as a random access memory (RAM) including a dynamic random access memory (DRAM), a static random access memory (SRAM), etc., may mean a volatile storage device in which stored information is momentarily erased when power is turned off, but is not limited thereto. The memory may be operated by the processor. The memory may temporarily store a data table including a data value and log records depending on a transaction. For example, the log records may be stored in a separate transaction log storage unit of the memory. The transaction in this specification may generally refer to a continuous processing unit for a series of operations such as information exchange or database update. The transaction represents a basic unit of an operation for completing a requested operation while ensuring integrity of the database.

In an embodiment of the present disclosure, the data values of the data table and/or the log records may be written to the persistent storage from the memory. In an additional aspect, the memory may include the buffer cache and the data and/or the log records may be stored in a block of the buffer cache. The data and/or the log records may be written in the persistent storage by a background process.

The persistent storage in the database means a non-volatile storage which may consistently store predetermined data, such as a magnetic disk, an optical disk, and a magneto-optical storage device and a storage device based on a flash memory and/or a battery-backup memory. The persistent storage may communicate with the processors and the memories of the databases 110 and 120 through various communication means. In an additional embodiment, the persistent storage is positioned outside the databases 110 and 120 to communicate with the databases 110 and 120.

The DBMS as a program for permitting the databases 110 and 120 to perform operations such as retrieval, insertion, modification, deletion, and/or log record management of required data may be implemented by the processors in the memories of the databases 110 and 120 as described above.

The client and the databases 110 and 120 or the databases 110 and 120 may communicate with each other through a network (not illustrated). The network according to an embodiment of the present disclosure may use various wired communication systems such as public switched telephone network (PSTN), x digital subscriber line (xDSL), rate adaptive DSL (RADSL), multi rate DSL (MDSL), very high speed DSL (VDSL), universal asymmetric DSL (UADSL), high bit rate DSL (HDSL), and local area network (LAN).

Further, the network presented in this specification may use various wireless communication systems such as code division multi access (CDMA), time division multi access (TDMA), frequency division multi access (FDMA), orthogonal frequency division multi access (OFDMA), single carrier-FDMA (SC-FDMA), and other systems. As an additional embodiment, the network in this specification may include a database link (dblink), and as a result, the databases 110 and 120 communicate with each other through the database link to take the data/log records therefrom or from another database. The techniques described in this specification may be used in other networks in addition to the aforementioned networks.

Additionally, a source database 110 may include, but is not limited thereto, a device including a processor and a memory for executing and storing commands as a predetermined type of database. That is, the source database may include software, firmware, and hardware or a combination thereof. The software may include a database table, a schema, and an application(s) for generating, deleting, and modifying indexes and/or data. The source database 110 may receive the transactions from the client or another computing device and exemplary transactions may include retrieving, adding, modifying, and/or deleting the data, the table, and/or the index in the source database 110.

A target database 120 may mean a database in which data change contents generated in the source database 110 are replicated or synchronized and include at least some of features of the source database 110. For example, the target database 120 may store copies for data, data types, tables, indexes, and/or log records of the source database 110.

The log record in this specification may mean a data record that may identify changed contents for a structure and an organization of the data in the database and/or changed contents related to a table, a column, a data type, an index, data, etc.

In an embodiment of the present disclosure, an agent server 130 may include a separate entity for implementing CDC between the source database 110 and the target database 120. Accordingly, the agent server 130 may perform predetermined operations for implementing CDC features.

The agent server 130 may include, but is not limited thereto, a device including a processor and a memory for executing and storing commands as a predetermined type of server. The agent server 130 may include software, firmware, and hardware or a combination thereof. For example, software that implements operations of the agent server 130 may be installed in the source database 110 and/or the target database 120.

Functions of the agent server 130 illustrated in FIG. 1 may be integrated into some functions of the source database 110 and/or the target database 120. For example, a CDC function of the agent server 130 may be replaced by the target database 120.

FIG. 2 is a diagram for describing an agent server that may perform a database replication non-stop integrity recovery method according to an embodiment of the present disclosure.

As illustrated in FIG. 2, the agent server 130 may be replaced by the source database 110 and/or the target database 120, or a combination thereof

In an embodiment of the present disclosure, the agent server 130 may include a log record acquisition and analysis module 210, a transceiver module 220, a storage module 230, a real-time CDC module 240, a recovery CDC module 250, and a control module 260. The components of the agent server 130 described above are exemplary and additional components may be present or some of the additional components may be omitted.

In an embodiment of the present disclosure, the control module 260 may include a replication module 261, a recovery start module 262, a non-stop replication module 263, a recovery module 264, and a recovery end module 265. The components of the agent server 130 described above are exemplary and additional components may be present.

In an embodiment of the present disclosure, the replication module 261 may perform a replication step 310 that permits the real-time CDC module 240 to perform a real-time synchronization process for objects.

The real-time CDC module 240 may obtain a plurality of log records from the log record acquisition and analysis module 210, including information about transactions processed in the source database.

The real-time CDC module 240 may determine that the plurality of acquired log records is to be transferred or replicated from the source database to the target database based on an order (e.g., system change number (SCN)) depending on a time when the log record is generated. For example, the log record for a transaction in which the SCN is earliest may be reflected to the target database earlier than the log record for a transaction subsequent thereto. For example, the replication in this specification may include various schemes including a scheme in which the transaction related to the corresponding log record is reflected to a corresponding object in the target database, a scheme in which the transaction is reflected through a separate view, and the like and is not limited thereto.

In an embodiment of the present disclosure, the recovery start module 262 may perform, when at least one non-integrity object is present between the source database and the target database, a recovery start step 320 that encapsulates the at least one non-integrity object in a recovery target object 411.

The recovery start module 262 may determine whether there is the non-integrity object in the objects between the databases 110 and 120 according to a predetermined time. The predetermined time may be periodic, but is not limited thereto.

The non-integrity object 411 may be defined in various methods. For example, in the case where the integrity of objects that do not cause a reflection error by the client during replication (irrespective of reflection integrity) is broken, the object whose integrity is broken may be referred to as a non-integrity object, but is not limited thereto. When there is the non-integrity object 411, it may be determined that the integrity between the databases 110 and 120 is broken.

In an embodiment of the present disclosure, the recovery start module 262 may further perform a step 320 of encapsulating the non-integrity object 411 and an object included in a predetermined condition in the recovery target object 412.

The predetermined condition may be determined by various methods. For example, the predetermined condition may include a condition as to whether there is a dependency between objects and the dependency may be determined based on whether a reference is made between a primary key and a foreign key. Herein, the primary key may include a key that uniquely identifies data stored in the object (e.g., a table) and the foreign key may include a primary key column referenced by another object in a specific object. Specifically, for example, when object T4 412 is not the non-integrity object, but makes a reference between the primary key and the foreign key with non-integrity object T3 411, object T4 is not the non-integrity object, but may be included in a recovery target object.

Since the non-integrity object 411 and the objects included in the predetermined condition are referenced with the non-integrity object even though current integrity is maintained, the integrity between the databases 111 and 112 may be broken.

In an embodiment of the present disclosure, the non-stop replication module 263 may perform a non-stop replication step 330 of permitting a real-time synchronization process to be performed by the real-time CDC module 240 with respect to objects other than at least one recovery target object among the objects.

In an embodiment of the present disclosure, the recovery module 264 may perform a recovery step 340 of permitting the recovery target object to be recovered by the recovery CDC module 250. Here, the recovery step may be performed in parallel with the non-stop replication step 330.

When the integrity between the source database and the target database is broken, the replication by the CDC needs to be stopped in order to start the recovery in the related art. The reason is that even if some of the objects need to be recovered, when the object needs to be recovered in a state in which the entire target is fixed to a specific SCN, the CDC may read and reflect log data from that time. In other words, the reason is that since the log data is globally written to the DBMS sequentially in one file according to the SCN and read by one processor, a process for an object to be recovered may be skipped when synchronization for another object is performed during the recovery. On the contrary, according to the present disclosure, it is possible to recover the integrity between the source database and the target database without stopping the replication by the CDC by activating one more CDC.

In an embodiment of the present disclosure, the recovery step 340 may include a step of determining a recovery time of the recovery module based on the order depending on the time when the log record occurs.

The recovery time of the recovery module may be determined by various methods. For example, the recovery time of the recovery module may be determined as the SCN at which the recovery module begins performing the recovery step. Specifically, in FIG. 500, since an SCN in which the recovery module begins performing the recovery step is 206, the recovery time of the recovery module may be determined as a time when the SCN is 206.

In an embodiment of the present disclosure, the recovery step 340 may include a step in which the recovery module performs a recovery process for at least one recovery target object based on the determined recovery time.

The step of performing the recovery process for the recovery target object may be performed by various methods. For example, the step of performing the recovery process for the recovery target object may be performed by a method for recovering the integrity by a scheme of replicating the object of the source database at the recovery time to the target database. However, the present disclosure is not limited thereto.

In an embodiment of the present disclosure, the recovery step 340 may include a step in which the recovery CDC module performs a synchronization process for at least one recovery target object based on the determined recovery time.

The step of performing the synchronization process for the recovery target objects by the recovery module based on the recovery time may be performed by various methods. For example, the recovery CDC module may be performed by a method in which the recovery CDC module performs synchronization for the recovery target objects in order from the SCN of the recovery time.

The real-time CDC module 240 and the recovery CDC module 250 may perform synchronization in parallel with each other by differentiating a synchronization time and the object, and as a result, the synchronization between two databases 111 and 112 may not be stopped even during the recovery of the integrity.

In an embodiment of the present disclosure, the control module 260 may perform a recovery end step 350 of ending the recovery based on a synchronization delay between the real-time CDC module 240 and the recovery CDC module 250.

The synchronization delay between the real-time CDC module 240 and the recovery CDC module 250 may be determined by various methods. Specifically, for example, when a subsequent SCN of an SCN in which the recovery CDC module commits last exceeds an SCN in which the real-time CDC module 240 commits last, it may be determined that there is no synchronization delay between both CDC modules 240 and 250. In this case, the integrity is recovered so that the recovery end module 260 stops the recovery CDC module and the real-time CDC module performs synchronization for the objects including the recovery target object to end the recovery.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining synchronization time information of the real-time CDC module, obtaining synchronization time information of the recovery CDC module, determining whether to delay the synchronization based on the synchronization time information of the real-time CDC module and the synchronization time information of the recovery CDC module, and permitting the real-time CDC module to perform the synchronization process for the recovery target objects recovered when it is determined that there is no synchronization delay.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining the synchronization time information of the real-time CDC module 240.

The obtaining of the synchronization time information of the real-time CDC module 240 may be performed by various methods. Specifically, for example, in a temporary synchronization step 330, the SCN of the transaction last committed with respect to objects other than the at least one recovery target object may be obtained as the synchronization time information of the real-time CDC module 240.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining the synchronization time information of the recovery CDC module 250.

The obtaining of the synchronization time information of the recovery CDC module 250 may be performed by various methods. Specifically, for example, in the recovery step 340, the SCN of the transaction last committed with respect to the recovery target objects may be obtained as the synchronization time information of the recovery CDC module 250.

In an embodiment of the present disclosure, the recovery end step 350 may include determining whether to delay the synchronization based on the synchronization time information of the real-time CDC module and the synchronization time information of the recovery CDC module.

The method for determining whether to delay the synchronization may be performed by various methods. For example, when the subsequent SCN of the SCN of the transaction that is last committed with respect to the recovery target objects in the recovery step 340 exceeds the SCN of the transaction that is last committed with respect to the objects other than the at least one recovery target object in the non-stop replication step 330, it may be determined that there is no synchronization delay. Specifically, for example, it is assumed that the synchronization time information of the real-time CDC module 240 is SCN:216 and the synchronization time information of the recovery CDC module 250 is SCN:214. In this case, when the SCN of a transaction to be replicated by the recovery CDC module 250 is 217 that exceeds the SCN:216 which is the synchronization time information of the real-time CDC module 240, it may be determined that there is no synchronization delay. On the contrary, when the SCN of the transaction to be replicated by the recovery CDC module 250 is 215, it may be determined that there is still the synchronization delay.

In an embodiment of the invention, the method may include permitting the synchronization process to be performed by the real-time CDC module with the recovery target objects recovered when it is determined that there is no synchronization delay.

Specifically, when the synchronization is performed by each of both CDC modules 240 and 250 and then, the synchronization delay disappears, the following steps may be performed. First, the real-time CDC module internally stops reflecting the synchronization. Second, the recovery CDC module ends the synchronization for the recovery target object. Third, the recovered recovery target object is included in the synchronization target object of the real-time CDC module. Fourth, the real-time CDC performs a synchronization process including the recovery target object. However, the step is exemplary and some steps may be omitted or the step may further include some steps.

Synchronization by the real-time CDC module 240 may be performed when the transaction occurs in the source database. Contrary to this, since the synchronization by the recovery CDC module 250 is performed using the log data of the transaction that already occurs, the synchronization by the recovery CDC module 250 is thus performed earlier so that the synchronization times of both CDC modules coincide with each other. According to the present disclosure, the integrity may be recovered without stopping the replication between both databases by using such a point.

As described above, in the scheme in the related art, synchronization is stopped between the databases to recover the integrity and as the recovery time becomes longer, it is necessary to reflect the synchronization which occurs within the recovery time, so that there is a problem in that it takes a long time to recover the integrity. According to an embodiment of the present disclosure, database replication is not stopped in the process of recovering the integrity, and as a result, the problem may be effectively solved.

In an embodiment of the present disclosure, the log record acquisition and analysis module 210 may obtain a plurality of log records including information on transactions processed in the source database. When a change in data, tables, and/or indexes occurs in the source database according to a transaction started by the client, the log record for the corresponding transaction may be written to the source database. In this case, the agent server 130 may acquire the log record(s) for changed data by analyzing a transaction log written to a log buffer and/or a log file in the source database 110 and analyze the acquired log record(s). The log record acquisition and analysis module 210 may acquire only the changed data by analyzing the transaction log. Additionally, the agent server 130 may simply receive the log record determined by the source database 110 from the source database 110.

Each of the plurality of log records may include information for uniquely identifying the transaction and/or information for identifying a data record changed according to the transaction.

The source database 110 may include, for example, a change table including changed data for a corresponding source table. The agent server 130 may acquire the log record by analyzing the change table. As another embodiment, the agent server 130 may acquire the log record by extracting a series of transactions from a log by using the transaction log. Each of the plurality of log records may include the information for uniquely identifying the transaction and the information for identifying the data record changed according to the transaction.

In an embodiment of the present disclosure, the transceiver module 220 may provide a communication function with the databases and/or the client. For example, the transceiver module 220 may receive the extracted log records from the source database. Further, the transceiver module 220 may communicate with the databases and/or the client by using the predetermined network and/or database link described above.

Further, when FIG. 2 is interpreted as not the agent server 130 but the source/target database 110/120, the transceiver module 220 may receive data storage, change, query and index build, change, and query requests from the client. As an alternative embodiment, the transceiver module 220 may transfer information from the source database 110 to the target database 120 by a scheme of invoking a procedure to the target database 120. Moreover, the transceiver module 220 may provide a function to transceive predetermined data/information transferred between the servers in association with database replication.

In an embodiment of the present disclosure, the storage module 230 may store predetermined data that is stored in association with performing the CDC, such as storing the extracted log record.

Further, when FIG. 2 is interpreted as not the agent server 130 but the source/target database 110/120, the storage module 230 may store predetermined data stored in association with performing tasks of the databases 110 and 120. The storage module 230 may be included in the DBMS and/or the persistent storage. Additionally, the storage module 230 in the target database 120 may store the log records generated in the source database in the target database 120. Further, the storage module 230 may process and manage a request related to storing (including update) of the data in the server. For example, the storage module 230 may determine to store the data and the index table. Further, the storage module 230 may determine storage locations for the data and/or the index table. For example, the storage module 230 may determine the storage location of the data in the data table. As another example, the storage module 230 may determine the storage location of the data in the persistent storage.

In an embodiment of the present disclosure, the real-time CDC module 240 may mean a separate entity for implementing the CDC between the source database 110 and the target database 120. Accordingly, the real-time CDC module 240 may perform predetermined operations for implementing CDC features.

In an embodiment of the present disclosure, the recovery CDC module 250 may mean the separate entity for implementing the CDC between the source database 110 and the target database 120. Accordingly, the recovery CDC module 250 may perform the predetermined operations for implementing the CDC features.

FIG. 3 is a diagram for describing steps of a database replication non-stop integrity recovery method according to an embodiment of the present disclosure.

Orders of the method illustrated in FIG. 3 are just exemplary and additional steps may be added or some of the illustrated steps may be omitted.

The method presented in FIG. 3 will be described below as being performed by the agent server 130 for convenience of description, but as described above, depending on an implementation aspect, the method may be implemented by the source database 110 or the target database 120, or a combination thereof.

In an embodiment of the present disclosure, the agent server 130 may include a log record acquisition and analysis module 210, a transceiver module 220, a storage module 230, a real-time CDC module 240, a recovery CDC module 250, and a control module 260. The components of the agent server 130 described above are exemplary and additional components may be present or some of the additional components may be omitted.

In an embodiment of the present disclosure, the control module 260 may include a replication module 261, a recovery start module 262, a non-stop replication module 263, a recovery module 264, and a recovery end module 265. The components of the agent server 130 described above are exemplary and additional components may be present.

In an embodiment of the present disclosure, the replication module 261 may perform a replication step 310 that permits the real-time CDC module 240 to perform a real-time synchronization process for objects.

The real-time CDC module 240 may acquire a plurality of log records including information on the transactions processed in the source database from the log record acquisition and analysis module 210.

The real-time CDC module 240 may determine that the plurality of acquired log records is to be transferred or replicated from the source database to the target database based on an order (e.g., system change number (SCN)) depending on a time when the log record is generated. For example, the log record for a transaction in which the SCN is earliest may be reflected to the target database earlier than the log record for a transaction subsequent thereto. For example, the replication in this specification may include various schemes including a scheme in which the transaction related to the corresponding log record is reflected to a corresponding object in the target database, a scheme in which the transaction is reflected through a separate view, and the like and is not limited thereto.

In an embodiment of the present disclosure, the recovery start module 262 may perform, when the at least one non-integrity object is present between the source database and the target database, a recovery start step 320 that encapsulates the at least one non-Submitted integrity object in the recovery target object 411.

The recovery start module 262 may determine whether there is the non-integrity object in the objects between the databases 110 and 120 according to a predetermined time. The predetermined time may be periodic, but is not limited thereto.

The non-integrity object 411 may be defined in various methods. For example, in the case where the integrity of objects that do not cause a reflection error by the client during replication (irrespective of reflection integrity) is broken, the object whose integrity is broken may be referred to as a non-integrity object, but is not limited thereto. When there is the non-integrity object 411, it may be determined that the integrity between the databases 110 and 120 is broken.

In an embodiment of the present disclosure, the recovery start module 262 may further perform a step 320 of encapsulating the non-integrity object 411 and an object included in a predetermined condition in the recovery target object 412.

The predetermined condition may be determined by various methods. For example, the predetermined condition may include a condition as to whether there is a dependency between objects and the dependency may be determined based on whether a reference is made between a primary key and a foreign key. Here, the primary key may include a key that uniquely identifies data stored in the object (e.g., a table) and the foreign key may include a primary key column referenced by another object in a specific object in order to generate the connection between respective tables. Specifically, for example, when object T4 412 is not the non-integrity object, but makes a reference between the primary key and the foreign key with non-integrity object T3 411, object T4 is not the non-integrity object, but may be included in a recovery target object.

Since the non-integrity object 411 and the objects included in the predetermined condition are referenced with the non-integrity object even though current integrity is maintained, the integrity between the databases 111 and 112 may be broken.

In an embodiment of the present disclosure, the non-stop replication module 263 may perform a non-stop replication step 330 of permitting a real-time synchronization process to be performed by the real-time CDC module 240 with respect to objects other than at least one recovery target object among the objects.

In an embodiment of the present disclosure, the recovery module 264 may perform a recovery step 340 of permitting the recovery target object to be recovered by the recovery CDC module 250. Here, the recovery step may be performed in parallel with the non-stop replication step 330.

When the integrity between the source database and the target database is broken,

the replication by the CDC needs to be stopped in order to start the recovery in the related art. The reason is that even if some of the objects need to be recovered, when the object needs to be recovered in a state in which the entire target is fixed to a specific SCN, the CDC may read and reflect log data from that time. In other words, the reason is that since the log data is globally written to the DBMS sequentially in one file according to the SCN and read by one processor, a process for an object to be recovered may be skipped when synchronization for another object is performed during the recovery. On the contrary, according to the present disclosure, it is possible to recover the integrity between the source database and the target database without stopping the replication by the CDC by activating one more CDC.

In an embodiment of the present disclosure, the recovery step 340 may include a step of determining a recovery time of the recovery module based on the order depending on the time when the log record occurs.

The recovery time of the recovery module may be determined by various methods. For example, the recovery time of the recovery module may be determined as the SCN at which the recovery module begins performing the recovery step. Specifically, in FIG. 500, since an SCN in which the recovery module begins performing the recovery step is 206, the recovery time of the recovery module may be determined as a time when the SCN is 206.

In an embodiment of the present disclosure, the recovery step 340 may include a step in which the recovery module performs a recovery process for at least one recovery target object based on the determined recovery time.

The step of performing the recovery process for the recovery target object may be performed by various methods. For example, the step of performing the recovery process for the recovery target object may be performed by the method for recovering the integrity by the scheme of replicating the object of the source database at the recovery time to the target database. However, the present disclosure is not limited thereto.

In an embodiment of the present disclosure, the recovery step 340 may include a step in which the recovery CDC module performs a synchronization process for at least one recovery target object based on the determined recovery time.

The step of performing the synchronization process for the recovery target objects by the recovery module based on the recovery time may be performed by various methods. For example, the recovery CDC module may be performed by a method in which the recovery CDC module performs synchronization for the recovery target objects in order from the SCN of the recovery time.

The real-time CDC module 240 and the recovery CDC module 250 may perform synchronization in parallel with each other by differentiating a synchronization time and the object, and as a result, the synchronization between two databases 111 and 112 may not be stopped even during the recovery of the integrity.

In an embodiment of the present disclosure, the control module 260 may perform a replication end step 350 of ending the recovery based on a synchronization delay between the real-time CDC module 240 and the recovery CDC module 250.

The synchronization delay between the real-time CDC module 240 and the recovery CDC module 250 may be determined by various methods. Specifically, for example, when a subsequent SCN of an SCN in which the recovery CDC module commits last exceeds an SCN in which the real-time CDC module 240 commits last, it may be determined that there is no synchronization delay between both CDC modules 240 and 250. In this case, the integrity is recovered so that the recovery end module 260 stops the recovery CDC module and the real-time CDC module performs synchronization for the objects including the recovery target object to end the recovery.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining synchronization time information of the real-time CDC module, obtaining synchronization time information of the recovery CDC module, determining whether to delay the synchronization based on the synchronization time information of the real-time CDC module and the synchronization time information of the recovery CDC module, and permitting the real-time CDC module to perform the synchronization process for the recovery target objects recovered when it is determined that there is no synchronization delay.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining the synchronization time information of the real-time CDC module 240.

The obtaining of the synchronization time information of the real-time CDC module 240 may be performed by various methods. Specifically, for example, in a temporary synchronization step 330, the SCN of the last transaction committed with respect to objects other than the at least one recovery target object may be obtained as the synchronization time information of the real-time CDC module 240.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining the synchronization time information of the recovery CDC module 250.

The obtaining of the synchronization time information of the recovery CDC module 250 may be performed by various methods. Specifically, for example, in the recovery step 340, the SCN of the transaction last committed with respect to the recovery target objects may be obtained as the synchronization time information of the recovery CDC module 250.

In an embodiment of the present disclosure, the recovery end step 350 may include determining whether to delay the synchronization based on the synchronization time information of the real-time CDC module and the synchronization time information of the recovery CDC module.

The method for determining whether to delay the synchronization may be performed by various methods. For example, when the subsequent SCN of the SCN of the transaction that is last committed with respect to the recovery target objects in the recovery step 340 exceeds the SCN of the transaction that is last committed with respect to the objects other than the at least one recovery target object in the non-stop replication step 330, it may be determined that there is no synchronization delay. Specifically, for example, it is assumed that the synchronization time information of the real-time CDC module 240 is SCN:216 and the synchronization time information of the recovery CDC module 250 is SCN:214. In this case, when the SCN of a transaction to be replicated by the recovery CDC module 250 is 217 that exceeds the SCN:216 which is the synchronization time information of the real-time CDC module 240, it may be determined that there is no synchronization delay. On the contrary, when the SCN of the transaction to be replicated by the recovery CDC module 250 is 215, it may be determined that there is still the synchronization delay.

In an embodiment of the invention, the method may include permitting the synchronization process to be performed by the real-time CDC module with the recovery target objects recovered when it is determined that there is no synchronization delay.

Specifically, when the synchronization is performed by each of both CDC modules 240 and 250 and then, the synchronization delay disappears, the following steps may be performed. First, the real-time CDC module internally stops reflecting the synchronization. Second, the recovery CDC module ends the synchronization for the recovery target object. Third, the recovered recovery target object is included in the synchronization target object of the real-time CDC module. Fourth, the real-time CDC performs a synchronization process including the recovery target object. However, the step is exemplary and some steps may be omitted or the step may further include some steps.

Synchronization by the real-time CDC module 240 may be performed when the transaction occurs in the source database. Contrary to this, since the synchronization by the recovery CDC module 250 is performed using the log data of the transaction that already occurs, the synchronization by the recovery CDC module 250 is thus performed earlier so that the synchronization times of both CDC modules coincide with each other. According to the present disclosure, the integrity may be recovered without stopping the replication between both databases by using such a point.

As described above, in the scheme in the related art, synchronization is stopped between the databases to recover the integrity and as the recovery time becomes longer, it is necessary to reflect the synchronization which occurs within the recovery time, so that it takes a long time to recover the integrity. According to an embodiment of the present disclosure, database replication is not stopped in the process of recovering the integrity, and as a result, the problem may be effectively solved.

FIG. 4 is a diagram for describing a replication step and a recovery start step according to an embodiment of the present disclosure.

In an embodiment of the present disclosure, the agent server 130 may include a log record acquisition and analysis module 210, a transmission and reception module 220, a storage module 230, a real-time CDC module 240, a recovery CDC module 250, and a control module 260. The components of the agent server 130 described above are exemplary and additional components may be present or some of the additional components m may be omitted.

In an embodiment of the present disclosure, the control module 260 may include a replication module 261, a recovery start module 262, a non-stop replication module 263, a recovery module 264, and a recovery end module 265. The components of the agent server 130 described above are exemplary and additional components may be present.

In an embodiment of the present disclosure, the replication module 261 may perform a replication step 310 that permits the real-time CDC module 240 to perform a real-time synchronization process for objects.

The real-time CDC module 240 may acquire a plurality of log records including information on the transactions processed in the source database from the log record acquisition and analysis module 210.

The real-time CDC module 240 may determine that the plurality of acquired log records is to be transferred or replicated from the source database to the target database based on an order (e.g., system change number (SCN)) depending on a time when the log record is generated. For example, the log record for a transaction in which the SCN is earliest may be reflected to the target database earlier than the log record for a transaction subsequent thereto. For example, the replication in this specification may include various schemes including a scheme in which the transaction related to the corresponding log record is reflected to a corresponding object in the target database, a scheme in which the transaction is reflected through a separate view, and the like.

In an embodiment of the present disclosure, the recovery start module 262 may perform, when the at least one non-integrity object is present between the source database and the target database, a recovery start step 320 that encapsulates the at least one non-integrity object in the recovery target object 411.

The recovery start module 262 may determine whether there is the non-integrity object in the objects between the databases 110 and 120 according to a predetermined time. The predetermined time may be periodic, but is not limited thereto.

The non-integrity object 411 may be defined in various methods. For example, in the case where the integrity of objects that do not cause a reflection error by the client during replication (irrespective of reflection integrity) is broken, the object whose integrity is broken may be referred to as a non-integrity object, but is not limited thereto. When there is the non-integrity object 411, it may be determined that the integrity between the databases 110 and 120 is broken.

In an embodiment of the present disclosure, the recovery start module 262 may further perform a step 320 of encapsulating the non-integrity object 411 and an object included in a predetermined condition in the recovery target object 412.

The predetermined condition may be determined by various methods. For example, the predetermined condition may include a condition as to whether there is a dependency between objects and the dependency may be determined based on whether a reference is made between a primary key and a foreign key. Here, the primary key may include a key that uniquely identifies data stored in the object (e.g., a table) and the foreign key may include a primary key column referenced by another object in a specific object. Specifically, for example, when object T4 412 is not the non-integrity object, but makes a reference between the primary key and the foreign key with non-integrity object T3 411, object T4 is not the non-integrity object, but may be included in a recovery target object.

Since the non-integrity object 411 and the objects included in the predetermined condition are referenced with the non-integrity object even though current integrity is maintained, the integrity between the databases 111 and 112 may be broken.

FIG. 5 is a diagram for describing a non-stop replication step, a recovery step, and a recovery end step according to an embodiment of the present disclosure.

In an embodiment of the present disclosure, the non-stop replication module 263 may perform a non-stop replication step 330 of permitting a real-time synchronization process to be performed by the real-time CDC module 240 with respect to objects other than at least one recovery target object among the objects.

In an embodiment of the present disclosure, the recovery module 264 may perform a recovery step 340 of permitting the recovery target object to be recovered by the recovery CDC module 250. Here, the recovery step may be performed in parallel with the non-stop replication step 330.

When the integrity between the source database and the target database is broken, the replication by the CDC needs to be stopped in order to start the recovery in the related art. The reason is that even if some of the objects need to be recovered, when the object needs to be recovered in a state in which the entire target is fixed to a specific SCN, the CDC may read and reflect log data from that time. In other words, the reason is that since the log data is globally written to the DBMS sequentially in one file according to the SCN and read by one processor, a process for an object to be recovered may be skipped when synchronization for another object is performed during the recovery. On the contrary, according to the present disclosure, it is possible to recover the integrity between the source database and the target database without stopping the replication by the CDC by activating one more CDC.

In an embodiment of the present disclosure, the recovery step 340 may include a step of determining a recovery time of the recovery module based on the order depending on the time when the log record occurs.

The recovery time of the recovery module may be determined by various methods. For example, the recovery time of the recovery module may be determined as the SCN at which the recovery module begins performing the recovery step. Specifically, in FIG. 500, since an SCN in which the recovery module begins performing the recovery step is 206, the recovery time of the recovery module may be determined as a time when the SCN is 206.

In an embodiment of the present disclosure, the recovery step 340 may include a step in which the recovery module performs a recovery process for at least one recovery target object based on the determined recovery time.

The step of performing the recovery process for the recovery target object may be performed by various methods. For example, the step of performing the recovery process for the recovery target object may be performed by the method for recovering the integrity by the scheme of replicating the object of the source database at the recovery time to the target database. However, the present disclosure is not limited thereto.

In an embodiment of the present disclosure, the recovery step 340 may include a step in which the recovery CDC module performs a synchronization process for at least one recovery target object based on the determined recovery time.

The step of performing the synchronization process for the recovery target objects by the recovery module based on the recovery time may be performed by various methods. For example, the recovery CDC module may be performed by a method in which the recovery CDC module performs synchronization for the recovery target objects in order from the SCN of the recovery time.

The real-time CDC module 240 and the recovery CDC module 250 may perform synchronization in parallel with each other by differentiating a synchronization time and the object, and as a result, the synchronization between two databases 111 and 112 may not be stopped even during the recovery of the integrity.

In an embodiment of the present disclosure, the control module 260 may perform a replication end step 350 of ending the recovery based on a synchronization delay between the real-time CDC module 240 and the recovery CDC module 250.

The synchronization delay between the real-time CDC module 240 and the recovery CDC module 250 may be determined by various methods. Specifically, for example, when a subsequent SCN of an SCN in which the recovery CDC module commits last exceeds an SCN in which the real-time CDC module 240 commits last, it may be determined that there is no synchronization delay between both CDC modules 240 and 250. In this case, the integrity is recovered so that the recovery end module 260 stops the recovery CDC module and the real-time CDC module performs synchronization for the objects including the recovery target object to end the recovery.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining synchronization time information of the real-time CDC module, obtaining synchronization time information of the recovery CDC module, determining whether to delay the synchronization based on the synchronization time information of the real-time CDC module and the synchronization time information of the recovery CDC module, and permitting the real-time CDC module to perform the synchronization process for the recovery target objects recovered when it is determined that there is no synchronization delay.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining the synchronization time information of the real-time CDC module 240.

The obtaining of the synchronization time information of the real-time CDC module 240 may be performed by various methods. Specifically, for example, in a temporary synchronization step 330, the SCN of the last transaction committed with respect to objects other than the at least one recovery target object may be obtained as the synchronization time information of the real-time CDC module 240.

In an embodiment of the present disclosure, the recovery end step 350 may include obtaining the synchronization time information of the recovery CDC module 250.

The obtaining of the synchronization time information of the recovery CDC module 250 may be performed by various methods. Specifically, for example, in the recovery step 340, the SCN of the transaction last committed with respect to the recovery target objects may be obtained as the synchronization time information of the recovery CDC module 250.

In an embodiment of the present disclosure, the recovery end step 350 may include determining whether to delay the synchronization based on the synchronization time information of the real-time CDC module and the synchronization time information of the recovery CDC module.

The method for determining whether to delay the synchronization may be performed by various methods. For example, when the subsequent SCN of the SCN of the transaction that is last committed with respect to the recovery target objects in the recovery step 340 exceeds the SCN of the transaction that is last committed with respect to the objects other than the at least one recovery target object in the non-stop replication step 330, it may be determined that there is no synchronization delay. Specifically, for example, it is assumed that the synchronization time information of the real-time CDC module 240 is SCN:216 and the synchronization time information of the recovery CDC module 250 is SCN:214. In this case, when the SCN of a transaction to be replicated by the recovery CDC module 250 is 217 that exceeds the SCN:216 which is the synchronization time information of the real-time CDC module 240, it may be determined that there is no synchronization delay. On the contrary, when the SCN of the transaction to be replicated by the recovery CDC module 250 is 215, it may be determined that there is still the synchronization delay.

In an embodiment of the invention, the method may include permitting the synchronization process to be performed by the real-time CDC module with the recovery target objects recovered when it is determined that there is no synchronization delay.

Specifically, when the synchronization is performed by each of both CDC modules 240 and 250 and then, the synchronization delay disappears, the following steps may be performed. First, the real-time CDC module internally stops reflecting the synchronization. Second, the recovery CDC module ends the synchronization for the recovery target object. Third, the recovered recovery target object is included in the synchronization target object of the real-time CDC module. Fourth, the real-time CDC performs a synchronization process including the recovery target object. However, the step is exemplary and some steps may be omitted or the step may further include some steps.

Synchronization by the real-time CDC module 240 may be performed when the transaction occurs in the source database. Contrary to this, since the synchronization by the recovery CDC module 250 is performed using the log data of the transaction that already occurs, the synchronization by the recovery CDC module 250 is thus performed earlier so that the synchronization times of both CDC modules coincide with each other. According to the present disclosure, the integrity may be recovered without stopping the replication between both databases by using such a point.

As described above, in the scheme in the related art, synchronization is stopped between the databases to recover the integrity and as the recovery time becomes longer, it is necessary to reflect the synchronization which occurs within the recovery time, so that it takes a long time to recover the integrity. According to an embodiment of the present disclosure, database replication is not stopped in the process of recovering the integrity, and as a result, the problem may be effectively solved.

FIG. 6 is a block diagram of an exemplary computing device for implementing a CDC solution according to an embodiment of the present disclosure.

The present disclosure has generally been described above in association with features which may be executed on computers or processors in one or more servers, but it will be well appreciated by those skilled in the art that the present disclosure can be implemented in a combination with other program modules and/or as a combination of hardware and software.

In general, the program module includes a routine, a program, a component, a data structure, and the like that execute a specific task or implement a specific abstract data type. Further, it will be well appreciated by those skilled in the art that the method of the present disclosure can be implemented by other computer system configurations including a personal computer, a handheld computing device, microprocessor-based or programmable home appliances, and others (the respective devices may operate in connection with one or more associated devices) as well as a single-processor or multi-processor computer system, a mini computer, and a main frame computer.

The embodiments described in the present disclosure may also be implemented in a distributed computing environment in which predetermined tasks are performed by remote processing devices connected through a communication network. In the distributed computing environment, the program module may be positioned in both local and remote memory storage devices.

The computer generally includes various computer readable media. Media accessible by the computer may be computer readable media regardless of types thereof and the computer readable media include volatile and non-volatile media, transitory and non-transitory media, and mobile and non-mobile media. As not a limit but an example, the computer readable media may include computer storage media. The computer storage media include volatile and non-volatile, temporary or non-temporary, and movable and non-movable media implemented by a predetermined method or technology for storing information such as a computer readable command, a data structure, a program module, or other data. The computer storage media include a RAM, a ROM, an EEPROM, a flash memory or other memory technologies, a CD-ROM, a digital video disk (DVD) or other optical disk storage devices, a magnetic cassette, a magnetic tape, a magnetic disk storage device or other magnetic storage devices or predetermined other media which may be accessed by the computer or may be used to store desired information, but are not limited thereto.

The transceiving (communication) media generally implement the computer readable command, the data structure, the program module, or other data in a carrier wave or a modulated data signal such as other transport mechanism and include all information transfer media. The term “modulated data signal” means a signal acquired by configuring or changing at least one of characteristics of the signal so as to encode information in the signal. As not a limit but an example, transceiving (communication) media include wired media such as a wired network or a direct-wired connection and wireless media such as acoustic, RF, infrared and other wireless media.

In FIG. 6, an exemplary environment 600 that implements various aspects of the present disclosure including a computing device 602 for implementing the CDC features according to the present disclosure is shown and the computing device 602 includes a processing device 604, a system memory 606, and a system bus 608. The system bus 608 connects system components including the system memory 606 (not limited thereto) to the processing device 604. The processing device 604 may be a predetermined processor among various commercial processors. A dual processor or other multi-processor architectures may also be used as the processing device 604.

The system bus 608 may be any one of several types of bus structures which may be additionally interconnected to a local bus using any one of a memory bus, a peripheral device bus, and various commercial bus architectures. The system memory 606 includes a read only memory (ROM) 610 and a random access memory (RAM) 612. A basic input/output system (BIOS) is stored in the non-volatile memories 610 including the ROM, the EPROM, the EEPROM, and the like and the BIOS includes a basic routine that assists in transmitting information among components in the computing device 602 at a time such as in-starting. The RAM 612 may also include a high-speed RAM such as a static RAM for caching data.

The computing device 602 also includes an internal hard disk drive (HDD) 614 (for example, EIDE and SATA) (the internal hard disk drive (HDD) 614 may also be configured for an external purpose in an appropriate chassis (not illustrated)), a magnetic floppy disk drive (FDD) 616 (for example, for reading from or writing in a mobile diskette 618), and an optical disk drive 620 (for example, for reading a CD-ROM disk 622 or reading from or writing in other high-capacity optical media such as the DVD). The hard disk drive 614, the magnetic disk drive 616, and the optical disk drive 620 may be connected to the system bus 608 by a hard disk drive interface 624, a magnetic disk drive interface 626, and an optical drive interface 628, respectively. An interface 624 for implementing an exterior drive includes at least one of a universal serial bus (USB) and an IEEE 1394 interface technology or both of them.

The drives and the computer readable storage media associated therewith provide non-volatile storage of the data, the data structure, the computer executable command, and others. In the case of the computing device 602, the drives and the media correspond to storing of predetermined data in an appropriate digital format. In the description of the computer readable storage media, the mobile optical media such as the HDD, the mobile magnetic disk, and the CD or the DVD are mentioned, but it will be well appreciated by those skilled in the art that other types of media readable by the computer such as a zip drive, a magnetic cassette, a flash memory card, a cartridge, and others may also be used in an exemplary operating environment and further, the predetermined media may include computer executable commands for executing the methods of the present disclosure.

Multiple program modules including an operating system 630, one or more application programs 632, other program module 634, and program data 636 may be stored in the drive and the RAM 612. All or some of the operating system, the application, the module, and/or the data may also be cached by the RAM 612. It will be well appreciated that the present disclosure may be implemented in various operating systems which are commercially usable or a combination of the operating systems.

A user may input commands and information in the computing device 602 through one or more wired/wireless input devices, for example, pointing devices such as a keyboard 638 and a mouse 640. Other input devices (not illustrated) may include a microphone, an IR remote controller, a joystick, a game pad, a stylus pen, a touch screen, and others. These and other input devices are often connected to the processing device 604 through an input device interface 642 connected to the system bus 608, but may be connected by other interfaces including a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, and others.

A monitor 644 or other types of display devices are also connected to the system bus 608 through interfaces such as a video adapter 646, and the like. In addition to the monitor 644, the computer generally includes a speaker, a printer, and other peripheral output devices (not illustrated).

The computing device 602 may operate in a networked environment by using a logical connection to one or more remote computers including remote computer(s) 648 through wired and/or wireless communication. The remote computer(s) 648 may be a workstation, a server computer, a router, a personal computer, a portable computer, a micro-processor based entertainment apparatus, a peer device, or other general network nodes and generally includes multiple components or all of the components described with respect to the computing device 602, but only a memory storage device 650 is illustrated for brief description. The illustrated logical connection includes a wired/wireless connection to a local area network (LAN) 652 and/or a larger network, for example, a wide area network (WAN) 654. The LAN and WAN networking environments are general environments in offices and companies and facilitate an enterprise-wide computer network such as Intranet, and all of them may be connected to a worldwide computer network, for example, the Internet.

When the computing device 602 is used in the LAN networking environment, the computing device 602 is connected to a local network 652 through a wired and/or wireless communication network interface or an adapter 656. The adapter 656 may facilitate the wired or wireless communication to the LAN 652 and the LAN 652 also includes a wireless access point installed therein in order to communicate with the wireless adapter 656. When the computing device 602 is used in the WAN networking environment, the computing device 602 may include a modem 658 or is connected to a communication server on the WAN 654, or has other means that configure communication through the WAN 654 such as the Internet, etc. The modem 658 which may be an internal or external and wired or wireless device is connected to the system bus 608 through the serial port interface 642. In the networked environment, the program modules described with respect to the computing device 602 or some thereof may be stored in the remote memory/storage device 650. It will be well known that illustrated network connection is exemplary and other means configuring a communication link among computers may be used.

The computing device 602 performs an operation of communicating with predetermined wireless devices or entities which are disposed and operated by the wireless communication, for example, the printer, a scanner, a desktop and/or portable computer, a portable data assistant (PDA), a communication satellite, predetermined equipment or place associated with a wireless detectable tag, and a telephone. This at least includes wireless fidelity (Wi-Fi) and a Bluetooth wireless technology. Accordingly, communication may be a predefined structure like the network in the related art or just ad hoc communication between at least two devices.

The Wi-Fi enables connection to the Internet, and the like without a wired cable. The Wi-Fi is a wireless technology such as a device, for example, a cellular phone which enables the computer to transmit and receive data indoors or outdoors, that is, anywhere in a communication range of a base station. The Wi-Fi network uses a wireless technology called IEEE 802.6 (a, b, g, and others) in order to provide safe, reliable, and high-speed wireless connection. The Wi-Fi may be used to connect the computers to each other or the Internet and the wired network (using IEEE 802.3 or Ethernet). The Wi-Fi network may operate, for example, at a data rate of 6 Mbps (802.6a) or 54 Mbps (802.11b) in unlicensed 2.4 and 5 GHz wireless bands or operate in a product including both bands (dual bands).

Those skilled in the art of the present disclosure will appreciate that various exemplary logic blocks, modules, processors, means, circuits, and algorithm steps described in association with the embodiments disclosed herein can be implemented by electronic hardware, various types of programs or design codes (designated as “software” herein for easy description), or a combination of all thereof. In order to clearly describe the intercompatibility of the hardware and the software, various exemplary components, blocks, modules, circuits, and steps have been generally described above in association with functions thereof whether the functions are implemented as the hardware or software depends on design restrictions given to a specific application and an entire system. Those skilled in the art of the present disclosure may implement functions described by various methods with respect to each specific application, but it should not be analyzed that the implementation determination departs from the scope of the present disclosure.

Further, various embodiments presented herein may be implemented as manufactured articles using a method, an apparatus, or a standard programming and/or engineering technique. The term “manufactured article” includes a computer program, a carrier, or a medium which is accessible by a predetermined computer-readable device. For example, a computer-readable medium includes a magnetic storage device (for example, a hard disk, a floppy disk, a magnetic strip, or the like), an optical disk (for example, a CD, a DVD, or the like), a smart card, and a flash memory device (for example, an EEPROM, a card, a stick, a key drive, or the like), but is not limited thereto. Further, various storage media presented herein include one or more devices and/or other machine-readable media for storing information. The term “machine-readable media” include various other media that may store and possess command(s) and/or data, but are not limited thereto.

It will be appreciated that a specific order or a hierarchical structure of steps in the presented processes is one example of exemplary accesses. It will be appreciated that the specific order or the hierarchical structure of the steps in the processes within the scope of the present disclosure may be rearranged based on design priorities. Appended method claims provide elements of various steps in a sample order, but it does not mean that the method claims are limited to the presented specific order or hierarchical structure.

The description of the presented embodiments is provided so that those skilled in the art of the present disclosure use or implement the present disclosure. Various modifications of the embodiments will be apparent to those skilled in the art and general principles defined herein can be applied to other embodiments without departing from the scope of the present disclosure. Therefore, the present disclosure is not limited to the embodiments presented herein, but should be analyzed within the widest range which is coherent with the principles and new features presented herein.

MODE FOR INVENTION

Related contents in the best mode for carrying out the present disclosure are described as above.

INDUSTRIAL APPLICABILITY

The present disclosure relates to a database, and more particularly, may provide an efficient change data capture (CDC) technique. 

What is claimed is:
 1. A computer program stored in a computer readable storage medium, which includes encoded commands, wherein executing the computer program by one or more processors of a computer system allows the one or more processors to perform steps for change data capture (CDC) between a source database and a target database, the steps comprising: a resource data acquisition step of acquiring resource data which is data obtained by monitoring a current resource of a source database server; a comparison information generation step of generating comparison information by comparing the resource data and a predetermined source database server load threshold value; a mode determination step of determining an operation mode of a changed data capture process which operates in the source database server based on the comparison information, the operation mode including a union mode and a division mode; and a mode changing step of changing the operation mode of the process to a mode determined in the mode determination step.
 2. The computer program stored in a computer readable storage medium of claim 1, wherein the mode determination step includes determining the operation mode of the changed data capture process as the union mode when the resource data is less than the predetermined source database server load threshold value in the comparison information, and determining the operation mode of the changed data capture process as the division mode when the resource data is equal to or more than the predetermined source database server load threshold value in the comparison information.
 3. The computer program stored in a computer readable storage medium of claim 1, further comprising: when the operation mode is changed to the union mode by the mode changing step of changing the operation mode of the process to the mode determined in the mode determination step, an extraction step of extracting, by the source database, changed information included in a record of a redo log of the source database; an assembly step of analyzing a transaction for the extracted changed information and reassembling associated transactions to generate changed data; and a reflection step of completing commit of the changed data and reflecting the committed changed data to a target database.
 4. The computer program stored in a computer readable storage medium of claim 3, wherein a thread executing each step in each of the assembly step to the reflection step is processed by referring to a task queue, the task queue being at least a part of a memory storing the changed information and the changed data.
 5. The computer program stored in a computer readable storage medium of claim 1, further comprising: when the operation mode is changed to the division mode by the mode changing step of changing the operation mode of the process to the mode determined in the mode determination step, an extraction step of extracting, by the source database, changed information included in the record of the redo log of the source database; and a transmission step of generating, by a target database server, the changed data by reassembling the transactions for the changed information and transmitting the changed information to the target database so as to reflect committed changed data to the target database.
 6. The computer program stored in a computer readable storage medium of claim 1, wherein in the mode changing step, a mode change is executed when the task queue is empty.
 7. The computer program stored in a computer readable storage medium of claim 1, wherein the resource data acquisition step is a step of acquiring resource data which is data obtained by monitoring at least one resource of a CPU usage, a memory available capacity, and an input/output load of the source database server.
 8. A server performing change data capture (CDC) between a source database and a target database, the server comprising: a resource data acquisition module acquiring resource data which is data obtained by monitoring a current resource of a source database server; a comparison information generation module generating comparison information by comparing the resource data and a predetermined source database server load threshold value; and a control module determining an operation mode of a changed data capture process which operates in the source database server based on the comparison information, the operation mode including a union mode and a division mode, and changing an operation mode of the process to the determined mode.
 9. A method for performing change data capture (CDC) between a source database and a target database, the method comprising: a resource data acquisition step of acquiring resource data which is data obtained by monitoring a current resource of a source database server; a comparison information generation step of generating comparison information by comparing the resource data and a predetermined source database server load threshold value; a mode determination step of determining an operation mode of a changed data capture process which operates in the source database server based on the comparison information, the operation mode including a union mode and a division mode; and a mode changing step of changing the operation mode of the process to a mode determined in the mode determination step. 